// models/comment_model.go
// =============================================================================
// | 包: models                                                              |
// | 功能: 定义应用程序的数据模型，映射数据库表结构                           |
// =============================================================================
package models

// =============================================================================
// | 结构体: CommentModel                                                    |
// | 功能: 评论数据模型                                                      |
// | 说明: 映射数据库中的评论表，存储用户对文章的评论信息                    |
// |----------------------------------------------------------------------------|
// | 字段: Model - Model - 基础模型，包含ID、CreatedAt、UpdatedAt字段         |
// | 字段: Content - string - 评论内容                                       |
// | 字段: UserID - uint - 用户ID，评论者的唯一标识                          |
// | 字段: UserModel - UserModel - 评论者信息，不JSON序列化                   |
// | 字段: ArticleID - uint - 文章ID，被评论文章的唯一标识                    |
// | 字段: ArticleModel - ArticleModel - 被评论文章信息，不JSON序列化          |
// | 字段: ParentID - *uint - 父评论ID，回复的评论ID（可选）                  |
// | 字段: ParentModel - *CommentModel - 父评论信息，不JSON序列化              |
// | 字段: RootParentID - *uint - 根评论ID，顶级评论ID（可选）                |
// | 字段: SubCommentList - []*CommentModel - 子评论列表，不JSON序列化         |
// | 字段: DiggCount - int - 评论点赞数，评论获得的点赞数量                   |
// =============================================================================
type CommentModel struct {
	Model
	Content        string          `json:"content"`
	UserID         uint            `json:"userID"`
	UserModel      UserModel       `gorm:"foreignKey:UserID" json:"-"`
	ArticleID      uint            `json:"articleID"`
	ArticleModel   ArticleModel    `gorm:"foreignKey:ArticleID" json:"-"`
	ParentID       *uint           `json:"parentID"` // 父评论ID
	ParentModel    *CommentModel   `gorm:"foreignKey:ParentID" json:"-"`
	RootParentID   *uint           `json:"rootParentID"`                 // 根评论ID
	SubCommentList []*CommentModel `gorm:"foreignKey:ParentID" json:"-"` // 子评论列表
	DiggCount      int             `json:"diggCount"`                    // 评论点赞数
}
